package com.xcx.bo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class BoxListInfoExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer limit;

    private Integer offset;

    public BoxListInfoExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setOffset(Integer offset) {
        this.offset = offset;
    }

    public Integer getOffset() {
        return offset;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andBoxInfoNoIsNull() {
            addCriterion("box_info_no is null");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoIsNotNull() {
            addCriterion("box_info_no is not null");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoEqualTo(String value) {
            addCriterion("box_info_no =", value, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoNotEqualTo(String value) {
            addCriterion("box_info_no <>", value, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoGreaterThan(String value) {
            addCriterion("box_info_no >", value, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoGreaterThanOrEqualTo(String value) {
            addCriterion("box_info_no >=", value, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoLessThan(String value) {
            addCriterion("box_info_no <", value, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoLessThanOrEqualTo(String value) {
            addCriterion("box_info_no <=", value, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoLike(String value) {
            addCriterion("box_info_no like", value, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoNotLike(String value) {
            addCriterion("box_info_no not like", value, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoIn(List<String> values) {
            addCriterion("box_info_no in", values, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoNotIn(List<String> values) {
            addCriterion("box_info_no not in", values, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoBetween(String value1, String value2) {
            addCriterion("box_info_no between", value1, value2, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andBoxInfoNoNotBetween(String value1, String value2) {
            addCriterion("box_info_no not between", value1, value2, "boxInfoNo");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNull() {
            addCriterion("product_code is null");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNotNull() {
            addCriterion("product_code is not null");
            return (Criteria) this;
        }

        public Criteria andProductCodeEqualTo(String value) {
            addCriterion("product_code =", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotEqualTo(String value) {
            addCriterion("product_code <>", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThan(String value) {
            addCriterion("product_code >", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThanOrEqualTo(String value) {
            addCriterion("product_code >=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThan(String value) {
            addCriterion("product_code <", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThanOrEqualTo(String value) {
            addCriterion("product_code <=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLike(String value) {
            addCriterion("product_code like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotLike(String value) {
            addCriterion("product_code not like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeIn(List<String> values) {
            addCriterion("product_code in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotIn(List<String> values) {
            addCriterion("product_code not in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeBetween(String value1, String value2) {
            addCriterion("product_code between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotBetween(String value1, String value2) {
            addCriterion("product_code not between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNull() {
            addCriterion("product_name is null");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNotNull() {
            addCriterion("product_name is not null");
            return (Criteria) this;
        }

        public Criteria andProductNameEqualTo(String value) {
            addCriterion("product_name =", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotEqualTo(String value) {
            addCriterion("product_name <>", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThan(String value) {
            addCriterion("product_name >", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThanOrEqualTo(String value) {
            addCriterion("product_name >=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThan(String value) {
            addCriterion("product_name <", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThanOrEqualTo(String value) {
            addCriterion("product_name <=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLike(String value) {
            addCriterion("product_name like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotLike(String value) {
            addCriterion("product_name not like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameIn(List<String> values) {
            addCriterion("product_name in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotIn(List<String> values) {
            addCriterion("product_name not in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameBetween(String value1, String value2) {
            addCriterion("product_name between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotBetween(String value1, String value2) {
            addCriterion("product_name not between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductAppidIsNull() {
            addCriterion("product_appId is null");
            return (Criteria) this;
        }

        public Criteria andProductAppidIsNotNull() {
            addCriterion("product_appId is not null");
            return (Criteria) this;
        }

        public Criteria andProductAppidEqualTo(String value) {
            addCriterion("product_appId =", value, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductAppidNotEqualTo(String value) {
            addCriterion("product_appId <>", value, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductAppidGreaterThan(String value) {
            addCriterion("product_appId >", value, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductAppidGreaterThanOrEqualTo(String value) {
            addCriterion("product_appId >=", value, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductAppidLessThan(String value) {
            addCriterion("product_appId <", value, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductAppidLessThanOrEqualTo(String value) {
            addCriterion("product_appId <=", value, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductAppidLike(String value) {
            addCriterion("product_appId like", value, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductAppidNotLike(String value) {
            addCriterion("product_appId not like", value, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductAppidIn(List<String> values) {
            addCriterion("product_appId in", values, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductAppidNotIn(List<String> values) {
            addCriterion("product_appId not in", values, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductAppidBetween(String value1, String value2) {
            addCriterion("product_appId between", value1, value2, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductAppidNotBetween(String value1, String value2) {
            addCriterion("product_appId not between", value1, value2, "productAppid");
            return (Criteria) this;
        }

        public Criteria andProductPathIsNull() {
            addCriterion("product_path is null");
            return (Criteria) this;
        }

        public Criteria andProductPathIsNotNull() {
            addCriterion("product_path is not null");
            return (Criteria) this;
        }

        public Criteria andProductPathEqualTo(String value) {
            addCriterion("product_path =", value, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductPathNotEqualTo(String value) {
            addCriterion("product_path <>", value, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductPathGreaterThan(String value) {
            addCriterion("product_path >", value, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductPathGreaterThanOrEqualTo(String value) {
            addCriterion("product_path >=", value, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductPathLessThan(String value) {
            addCriterion("product_path <", value, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductPathLessThanOrEqualTo(String value) {
            addCriterion("product_path <=", value, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductPathLike(String value) {
            addCriterion("product_path like", value, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductPathNotLike(String value) {
            addCriterion("product_path not like", value, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductPathIn(List<String> values) {
            addCriterion("product_path in", values, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductPathNotIn(List<String> values) {
            addCriterion("product_path not in", values, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductPathBetween(String value1, String value2) {
            addCriterion("product_path between", value1, value2, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductPathNotBetween(String value1, String value2) {
            addCriterion("product_path not between", value1, value2, "productPath");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionIsNull() {
            addCriterion("product_envVersion is null");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionIsNotNull() {
            addCriterion("product_envVersion is not null");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionEqualTo(String value) {
            addCriterion("product_envVersion =", value, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionNotEqualTo(String value) {
            addCriterion("product_envVersion <>", value, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionGreaterThan(String value) {
            addCriterion("product_envVersion >", value, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionGreaterThanOrEqualTo(String value) {
            addCriterion("product_envVersion >=", value, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionLessThan(String value) {
            addCriterion("product_envVersion <", value, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionLessThanOrEqualTo(String value) {
            addCriterion("product_envVersion <=", value, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionLike(String value) {
            addCriterion("product_envVersion like", value, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionNotLike(String value) {
            addCriterion("product_envVersion not like", value, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionIn(List<String> values) {
            addCriterion("product_envVersion in", values, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionNotIn(List<String> values) {
            addCriterion("product_envVersion not in", values, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionBetween(String value1, String value2) {
            addCriterion("product_envVersion between", value1, value2, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductEnvversionNotBetween(String value1, String value2) {
            addCriterion("product_envVersion not between", value1, value2, "productEnvversion");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlIsNull() {
            addCriterion("product_photo_url is null");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlIsNotNull() {
            addCriterion("product_photo_url is not null");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlEqualTo(String value) {
            addCriterion("product_photo_url =", value, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlNotEqualTo(String value) {
            addCriterion("product_photo_url <>", value, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlGreaterThan(String value) {
            addCriterion("product_photo_url >", value, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlGreaterThanOrEqualTo(String value) {
            addCriterion("product_photo_url >=", value, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlLessThan(String value) {
            addCriterion("product_photo_url <", value, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlLessThanOrEqualTo(String value) {
            addCriterion("product_photo_url <=", value, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlLike(String value) {
            addCriterion("product_photo_url like", value, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlNotLike(String value) {
            addCriterion("product_photo_url not like", value, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlIn(List<String> values) {
            addCriterion("product_photo_url in", values, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlNotIn(List<String> values) {
            addCriterion("product_photo_url not in", values, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlBetween(String value1, String value2) {
            addCriterion("product_photo_url between", value1, value2, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductPhotoUrlNotBetween(String value1, String value2) {
            addCriterion("product_photo_url not between", value1, value2, "productPhotoUrl");
            return (Criteria) this;
        }

        public Criteria andProductDescIsNull() {
            addCriterion("product_desc is null");
            return (Criteria) this;
        }

        public Criteria andProductDescIsNotNull() {
            addCriterion("product_desc is not null");
            return (Criteria) this;
        }

        public Criteria andProductDescEqualTo(String value) {
            addCriterion("product_desc =", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescNotEqualTo(String value) {
            addCriterion("product_desc <>", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescGreaterThan(String value) {
            addCriterion("product_desc >", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescGreaterThanOrEqualTo(String value) {
            addCriterion("product_desc >=", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescLessThan(String value) {
            addCriterion("product_desc <", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescLessThanOrEqualTo(String value) {
            addCriterion("product_desc <=", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescLike(String value) {
            addCriterion("product_desc like", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescNotLike(String value) {
            addCriterion("product_desc not like", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescIn(List<String> values) {
            addCriterion("product_desc in", values, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescNotIn(List<String> values) {
            addCriterion("product_desc not in", values, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescBetween(String value1, String value2) {
            addCriterion("product_desc between", value1, value2, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescNotBetween(String value1, String value2) {
            addCriterion("product_desc not between", value1, value2, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductSortIsNull() {
            addCriterion("product_sort is null");
            return (Criteria) this;
        }

        public Criteria andProductSortIsNotNull() {
            addCriterion("product_sort is not null");
            return (Criteria) this;
        }

        public Criteria andProductSortEqualTo(String value) {
            addCriterion("product_sort =", value, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductSortNotEqualTo(String value) {
            addCriterion("product_sort <>", value, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductSortGreaterThan(String value) {
            addCriterion("product_sort >", value, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductSortGreaterThanOrEqualTo(String value) {
            addCriterion("product_sort >=", value, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductSortLessThan(String value) {
            addCriterion("product_sort <", value, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductSortLessThanOrEqualTo(String value) {
            addCriterion("product_sort <=", value, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductSortLike(String value) {
            addCriterion("product_sort like", value, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductSortNotLike(String value) {
            addCriterion("product_sort not like", value, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductSortIn(List<String> values) {
            addCriterion("product_sort in", values, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductSortNotIn(List<String> values) {
            addCriterion("product_sort not in", values, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductSortBetween(String value1, String value2) {
            addCriterion("product_sort between", value1, value2, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductSortNotBetween(String value1, String value2) {
            addCriterion("product_sort not between", value1, value2, "productSort");
            return (Criteria) this;
        }

        public Criteria andProductIsNewIsNull() {
            addCriterion("product_is_new is null");
            return (Criteria) this;
        }

        public Criteria andProductIsNewIsNotNull() {
            addCriterion("product_is_new is not null");
            return (Criteria) this;
        }

        public Criteria andProductIsNewEqualTo(String value) {
            addCriterion("product_is_new =", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewNotEqualTo(String value) {
            addCriterion("product_is_new <>", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewGreaterThan(String value) {
            addCriterion("product_is_new >", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewGreaterThanOrEqualTo(String value) {
            addCriterion("product_is_new >=", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewLessThan(String value) {
            addCriterion("product_is_new <", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewLessThanOrEqualTo(String value) {
            addCriterion("product_is_new <=", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewLike(String value) {
            addCriterion("product_is_new like", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewNotLike(String value) {
            addCriterion("product_is_new not like", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewIn(List<String> values) {
            addCriterion("product_is_new in", values, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewNotIn(List<String> values) {
            addCriterion("product_is_new not in", values, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewBetween(String value1, String value2) {
            addCriterion("product_is_new between", value1, value2, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewNotBetween(String value1, String value2) {
            addCriterion("product_is_new not between", value1, value2, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductStatusIsNull() {
            addCriterion("product_status is null");
            return (Criteria) this;
        }

        public Criteria andProductStatusIsNotNull() {
            addCriterion("product_status is not null");
            return (Criteria) this;
        }

        public Criteria andProductStatusEqualTo(String value) {
            addCriterion("product_status =", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusNotEqualTo(String value) {
            addCriterion("product_status <>", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusGreaterThan(String value) {
            addCriterion("product_status >", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusGreaterThanOrEqualTo(String value) {
            addCriterion("product_status >=", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusLessThan(String value) {
            addCriterion("product_status <", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusLessThanOrEqualTo(String value) {
            addCriterion("product_status <=", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusLike(String value) {
            addCriterion("product_status like", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusNotLike(String value) {
            addCriterion("product_status not like", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusIn(List<String> values) {
            addCriterion("product_status in", values, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusNotIn(List<String> values) {
            addCriterion("product_status not in", values, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusBetween(String value1, String value2) {
            addCriterion("product_status between", value1, value2, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusNotBetween(String value1, String value2) {
            addCriterion("product_status not between", value1, value2, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusIsNull() {
            addCriterion("product_service_status is null");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusIsNotNull() {
            addCriterion("product_service_status is not null");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusEqualTo(String value) {
            addCriterion("product_service_status =", value, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusNotEqualTo(String value) {
            addCriterion("product_service_status <>", value, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusGreaterThan(String value) {
            addCriterion("product_service_status >", value, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusGreaterThanOrEqualTo(String value) {
            addCriterion("product_service_status >=", value, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusLessThan(String value) {
            addCriterion("product_service_status <", value, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusLessThanOrEqualTo(String value) {
            addCriterion("product_service_status <=", value, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusLike(String value) {
            addCriterion("product_service_status like", value, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusNotLike(String value) {
            addCriterion("product_service_status not like", value, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusIn(List<String> values) {
            addCriterion("product_service_status in", values, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusNotIn(List<String> values) {
            addCriterion("product_service_status not in", values, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusBetween(String value1, String value2) {
            addCriterion("product_service_status between", value1, value2, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andProductServiceStatusNotBetween(String value1, String value2) {
            addCriterion("product_service_status not between", value1, value2, "productServiceStatus");
            return (Criteria) this;
        }

        public Criteria andExtInfoIsNull() {
            addCriterion("ext_info is null");
            return (Criteria) this;
        }

        public Criteria andExtInfoIsNotNull() {
            addCriterion("ext_info is not null");
            return (Criteria) this;
        }

        public Criteria andExtInfoEqualTo(String value) {
            addCriterion("ext_info =", value, "extInfo");
            return (Criteria) this;
        }

        public Criteria andExtInfoNotEqualTo(String value) {
            addCriterion("ext_info <>", value, "extInfo");
            return (Criteria) this;
        }

        public Criteria andExtInfoGreaterThan(String value) {
            addCriterion("ext_info >", value, "extInfo");
            return (Criteria) this;
        }

        public Criteria andExtInfoGreaterThanOrEqualTo(String value) {
            addCriterion("ext_info >=", value, "extInfo");
            return (Criteria) this;
        }

        public Criteria andExtInfoLessThan(String value) {
            addCriterion("ext_info <", value, "extInfo");
            return (Criteria) this;
        }

        public Criteria andExtInfoLessThanOrEqualTo(String value) {
            addCriterion("ext_info <=", value, "extInfo");
            return (Criteria) this;
        }

        public Criteria andExtInfoLike(String value) {
            addCriterion("ext_info like", value, "extInfo");
            return (Criteria) this;
        }

        public Criteria andExtInfoNotLike(String value) {
            addCriterion("ext_info not like", value, "extInfo");
            return (Criteria) this;
        }

        public Criteria andExtInfoIn(List<String> values) {
            addCriterion("ext_info in", values, "extInfo");
            return (Criteria) this;
        }

        public Criteria andExtInfoNotIn(List<String> values) {
            addCriterion("ext_info not in", values, "extInfo");
            return (Criteria) this;
        }

        public Criteria andExtInfoBetween(String value1, String value2) {
            addCriterion("ext_info between", value1, value2, "extInfo");
            return (Criteria) this;
        }

        public Criteria andExtInfoNotBetween(String value1, String value2) {
            addCriterion("ext_info not between", value1, value2, "extInfo");
            return (Criteria) this;
        }

        public Criteria andCreatedByIsNull() {
            addCriterion("created_by is null");
            return (Criteria) this;
        }

        public Criteria andCreatedByIsNotNull() {
            addCriterion("created_by is not null");
            return (Criteria) this;
        }

        public Criteria andCreatedByEqualTo(String value) {
            addCriterion("created_by =", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByNotEqualTo(String value) {
            addCriterion("created_by <>", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByGreaterThan(String value) {
            addCriterion("created_by >", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByGreaterThanOrEqualTo(String value) {
            addCriterion("created_by >=", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByLessThan(String value) {
            addCriterion("created_by <", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByLessThanOrEqualTo(String value) {
            addCriterion("created_by <=", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByLike(String value) {
            addCriterion("created_by like", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByNotLike(String value) {
            addCriterion("created_by not like", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByIn(List<String> values) {
            addCriterion("created_by in", values, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByNotIn(List<String> values) {
            addCriterion("created_by not in", values, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByBetween(String value1, String value2) {
            addCriterion("created_by between", value1, value2, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByNotBetween(String value1, String value2) {
            addCriterion("created_by not between", value1, value2, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedDateIsNull() {
            addCriterion("created_date is null");
            return (Criteria) this;
        }

        public Criteria andCreatedDateIsNotNull() {
            addCriterion("created_date is not null");
            return (Criteria) this;
        }

        public Criteria andCreatedDateEqualTo(Date value) {
            addCriterion("created_date =", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateNotEqualTo(Date value) {
            addCriterion("created_date <>", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateGreaterThan(Date value) {
            addCriterion("created_date >", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateGreaterThanOrEqualTo(Date value) {
            addCriterion("created_date >=", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateLessThan(Date value) {
            addCriterion("created_date <", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateLessThanOrEqualTo(Date value) {
            addCriterion("created_date <=", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateIn(List<Date> values) {
            addCriterion("created_date in", values, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateNotIn(List<Date> values) {
            addCriterion("created_date not in", values, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateBetween(Date value1, Date value2) {
            addCriterion("created_date between", value1, value2, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateNotBetween(Date value1, Date value2) {
            addCriterion("created_date not between", value1, value2, "createdDate");
            return (Criteria) this;
        }

        public Criteria andUpdatedByIsNull() {
            addCriterion("updated_by is null");
            return (Criteria) this;
        }

        public Criteria andUpdatedByIsNotNull() {
            addCriterion("updated_by is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatedByEqualTo(String value) {
            addCriterion("updated_by =", value, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedByNotEqualTo(String value) {
            addCriterion("updated_by <>", value, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedByGreaterThan(String value) {
            addCriterion("updated_by >", value, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedByGreaterThanOrEqualTo(String value) {
            addCriterion("updated_by >=", value, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedByLessThan(String value) {
            addCriterion("updated_by <", value, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedByLessThanOrEqualTo(String value) {
            addCriterion("updated_by <=", value, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedByLike(String value) {
            addCriterion("updated_by like", value, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedByNotLike(String value) {
            addCriterion("updated_by not like", value, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedByIn(List<String> values) {
            addCriterion("updated_by in", values, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedByNotIn(List<String> values) {
            addCriterion("updated_by not in", values, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedByBetween(String value1, String value2) {
            addCriterion("updated_by between", value1, value2, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedByNotBetween(String value1, String value2) {
            addCriterion("updated_by not between", value1, value2, "updatedBy");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateIsNull() {
            addCriterion("updated_date is null");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateIsNotNull() {
            addCriterion("updated_date is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateEqualTo(Date value) {
            addCriterion("updated_date =", value, "updatedDate");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateNotEqualTo(Date value) {
            addCriterion("updated_date <>", value, "updatedDate");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateGreaterThan(Date value) {
            addCriterion("updated_date >", value, "updatedDate");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateGreaterThanOrEqualTo(Date value) {
            addCriterion("updated_date >=", value, "updatedDate");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateLessThan(Date value) {
            addCriterion("updated_date <", value, "updatedDate");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateLessThanOrEqualTo(Date value) {
            addCriterion("updated_date <=", value, "updatedDate");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateIn(List<Date> values) {
            addCriterion("updated_date in", values, "updatedDate");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateNotIn(List<Date> values) {
            addCriterion("updated_date not in", values, "updatedDate");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateBetween(Date value1, Date value2) {
            addCriterion("updated_date between", value1, value2, "updatedDate");
            return (Criteria) this;
        }

        public Criteria andUpdatedDateNotBetween(Date value1, Date value2) {
            addCriterion("updated_date not between", value1, value2, "updatedDate");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}